package top.api.service;

import top.api.common.ResponseResult;
import top.api.domain.dto.AddMenuDto;
import top.api.domain.dto.UpdateMenuDto;
import top.api.domain.entity.Menu;
import com.baomidou.mybatisplus.extension.service.IService;
import top.api.domain.entity.User;

import java.util.List;

/**
* @author 27465
* @description 针对表【sys_menu(菜单权限表)】的数据库操作Service
* @createDate 2023-02-01 19:22:59
*/
public interface MenuService extends IService<Menu> {

    /**
     *查询对应的菜单权限
     * @param user
     * @return
     */
    List<String> selectPerms(User user);

    /**
     * 查询对应的菜单路由
     * @param user
     * @return
     */
    List<Menu> selectRouterMenuTree(User user);

    /**
     * admin 查询菜单
     * @param menuName
     * @param status
     * @return
     */
    ResponseResult getMenuListByMenuNameAndStatus(String menuName, String status);

    /**
     * 添加菜单
     * @param addMenuDto
     * @return
     */
    ResponseResult addMenu(AddMenuDto addMenuDto);

    /**
     * 查询菜单详情
     * @param id
     * @return
     */
    ResponseResult getMenuInfo(Long id);

    /**
     * 修改菜单
     * @param updateMenuDto
     * @return
     */
    ResponseResult updateMenu(UpdateMenuDto updateMenuDto);

    /**
     * 删除菜单
     * @param id
     * @return
     */
    ResponseResult deleteMenu(Long id);

    /**
     * 获取菜单树
     * @return
     */
    ResponseResult treeSelect();

    /**
     * 加载对应角色菜单列表树接口
     * @param id
     * @return
     */
    ResponseResult roleMenuTreeselect(Long id);
}
